#include <stdio.h>
void printf_bit(char *str, int num)
{
    printf("%s\n", str);
    unsigned int mask = 1 << 31;
    for (int i = 0; i < sizeof(int) * 8 ; i++)
    {
        if (num & mask)
        {
            putchar('1');
        }
        else
            putchar('0');
        mask >>= 1;
        if (((i + 1) % 4) == 0)
            putchar(' ');
    }
    putchar('\n');
}
int main(int argc, char const *argv[])
{
    int gpio_mode = 0xcccccccf;
    printf_bit("gpio_mode", gpio_mode);
    // 清除特定值
    int M = ~3;
    printf_bit("M", M);
    // 设置特定值
    gpio_mode &= M;
    printf_bit("gpio_mode&M", gpio_mode);
    // 翻转特定位
    M = 0b1001;
    gpio_mode ^= M;
    printf_bit("gpio_mode^M", gpio_mode);
    return 0;
}